iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
DevOps

Terraform 從零開始 - 實戰Lab打造GCP雲端自動化架構系列 第 17

Day 17 — Terraform/GCP基礎 — 設定 GCP 服務帳號 (Service Account)

  • 分享至 

  • xImage
  •  

文章目標:示範如何設定 GCP 服務帳號,以便在 Terraform 中進行身份驗證。

Day 17 — Terraform/GCP基礎 — 設定 GCP 服務帳號 (Service Account)

文章同步分享到

1. 設定服務帳號(service account)

設定步驟

  1. 登入GCP控制台(https://console.cloud.google.com)。

  2. 選擇您要創建服務帳號的GCP專案。

  3. 在左側導航欄中,選擇IAM與管理,然後選擇服務帳號

  4. 在服務帳號頁面上,點擊創建服務帳號

  5. 新服務帳號對話框中,輸入服務帳號的名稱、ID和描述,請使用 terraform101 作為名稱並點擊創建

  6. 在下一個頁面上,選擇要授予該服務帳號的角色。您可以從預設角色中選擇,或自定義新角色,這邊使用擁有者 owner的角色。

  7. 點擊完成即可創建服務帳號。

  8. 接下來,您需要下載服務帳號的私鑰檔案。點擊新建的服務帳號,然後點擊加密金鑰選項卡。在該頁面上,您可以選擇下載私鑰檔案,並保存到您的本地電腦。

  9. 私鑰檔案與您的應用程序一起使用,以便驗證該應用程序對GCP資源的訪問權限。

設定服務帳號(service account) — IAM與管理

2. 實際操作

任務目標

  1. 使用GCP的Cloud Console

  2. 創建服務帳號 Service Account, SA

  3. 下載對應的金鑰 key (json)

  4. 查看金鑰 key裡面的內容

創建服務帳號 Service Account, SA

登入GCP控制台(https://console.cloud.google.com)後,在左側導航欄中,選擇IAM與管理與身份與存取權管理,然後選擇服務帳號

GCP IAM與管理

GCP IAM與管理 身份與存取權管理

  • 在服務帳號頁面上,點擊創建服務帳號

  • 新服務帳號對話框中,輸入服務帳號的名稱、ID和描述,請使用 terraform101 作為名稱並點擊創建

  • 在下一個頁面上,選擇要授予該服務帳號的角色。您可以從預設角色中選擇,或自定義新角色,這邊使用擁有者 owner的角色。

  • 點擊完成即可創建服務帳號。

GCP Service account 服務帳號

GCP Service account 服務帳號權限

GCP Service account 服務帳號 使用者留白

檢視服務帳號,創建並下載對應的金鑰 key (json)

  • 確認服務帳號詳細資料無誤。

  • 服務帳號電子郵件,是gcp用來管理對應服務帳號擁有權限的資料。

GCP Service account 服務帳號狀態

GCP Service account 服務帳號 email作為認證

  • 點選上方的金鑰

  • 建立新的金鑰,並選擇JSON的類型來產生

  • 產生後會自動下載

GCP Service account 金鑰 key

GCP Service account 建立金鑰

GCP Service account 建立金鑰形式 json

查看金鑰 key裡面的內容

打開Google Cloud Platform (GCP) 服務帳戶金鑰 json 檔案的內容,並確認相關資訊。這個金鑰可用於身份驗證和授權以訪問 GCP 資源,記得也需要非常謹慎地保護和管理。:

  1. type:這是金鑰的類型,指明這是一個服務帳戶金鑰。

  2. project_id:這是與這個金鑰相關聯的 GCP 項目的項目 ID,即 terraform101–384507

  3. private_key_id:這是金鑰的私有金鑰 ID,用於識別這個特定金鑰。

  4. private_key:這是實際的私有金鑰,是一個長字符串,通常以 — — -BEGIN PRIVATE KEY — — - — — -END PRIVATE KEY — — - 包圍。這個金鑰用於對 GCP 資源進行驗證和授權,所以非常敏感,需要妥善保護。

  5. client_email:這是服務帳戶的客戶電子郵件地址,通常以 [tf101–776@terraform101–384507.iam.gserviceaccount.com](mailto:tf101-776@terraform101-384507.iam.gserviceaccount.com) 的形式存在。

  6. client_id:這是服務帳戶的客戶 ID,用於識別服務帳戶。

  7. auth_uri:這是用於進行身份驗證的 URI,通常用於 OAuth2 驗證流程,位於 `https://accounts.google.com/o/oauth2/auth

  8. token_uri:這是用於獲取訪問令牌的 URI,位於 `https://oauth2.googleapis.com/token

  9. auth_provider_x509_cert_url:這是身份驗證提供者的 X.509 證書的 URL,通常用於確保與身份驗證相關的安全性,位於 `https://www.googleapis.com/oauth2/v1/certs

  10. client_x509_cert_url:這是服務帳戶的 X.509 證書的 URL,用於公開金鑰驗證,位於 `https://www.googleapis.com/robot/v1/metadata/x509/tf101-776%40terraform101-384507.iam.gserviceaccount.com

5. 總結 Summary

  1. 設定服務帳號: 這部分詳細說明了如何在Google Cloud Platform (GCP)上建立服務帳號,以及如何管理相關的權限。同時,我們也了解到如何生成專屬於服務帳號的金鑰,這個金鑰將被用於後續的身份驗證。

  2. 服務帳號金鑰內容: 我們深入瞭解了服務帳號金鑰的內容。其中包括了金鑰的類型、關聯的GCP專案ID、私有金鑰ID等重要參數。此外,我們也注意到金鑰內容中的敏感信息,特別是私有金鑰,這是用於確保訪問GCP資源的關鍵。

6. 相關連結

  1. Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Codehttps://github.com/qwedsazxc78/Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code

  2. Terraform-project-best-practicehttps://github.com/qwedsazxc78/terraform-project-best-practice

  3. 歡迎訂閱我的udemy課程:Terraform 從零開始 - 10+實戰Lab打造GCP雲端自動化架構課程 - https://devops-with-alex.com/go/terraform


上一篇
Day 16 — Terraform/GCP基礎— GCP服務帳號 (Service Account) 與使用者 (User) 的差異
下一篇
Day 18 — Terraform/GCP基礎 — 連結 Terraform 與 GCP:使用者帳號與密碼
系列文
Terraform 從零開始 - 實戰Lab打造GCP雲端自動化架構31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言